package com.example.workflow.service;

import com.example.workflow.dto.OrderStatusCountDto;
import com.example.workflow.dto.OrderTimeSeriesDto;
import com.example.workflow.dto.OrderTypeCountDto;

import java.time.LocalDate;

/**
 * 用户工单统计服务接口
 */
public interface UserOrderStatsService {

    /**
     * URL: /user/order/count
     * 获取指定日期范围内工单计数统计，以时序数组形式返回
     *
     * @param userId 用户ID
     * @param begin 开始日期
     * @param end 结束日期
     * @param gap 时间间隔 (day/week/month)
     * @return 时序格式的工单统计数据
     */
    OrderTimeSeriesDto countOrdersByTimeRange(Integer userId, LocalDate begin, LocalDate end, String gap);
    
    /**
     * URL: /user/order/status-count
     * 获取用户各个状态工单的数量统计
     *
     * @param userId 用户ID
     * @return 各状态工单数量统计
     */
    OrderStatusCountDto countUserOrdersByStatus(Integer userId);

    /**
     * URL: /user/order/type-count
     * 获取用户各类型工单的数量统计
     *
     * @param userId 用户ID
     * @return 各类型工单数量统计
     */
    OrderTypeCountDto countUserOrdersByType(Integer userId);
} 